﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

namespace sistemaAcademicoFinanceiroEscolas.boletimOnline
{
    public partial class historicoAluno : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!Page.IsPostBack)
            {

                //carregar anos letivos

                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();

                //carregar anos letivos

                string sqlAnoLetivo = "select * from anoLetivo";

                SqlCommand cmdAnoLetivo = new SqlCommand(sqlAnoLetivo, sqlc);
                SqlDataReader myReaderAnoLetivo = cmdAnoLetivo.ExecuteReader();

                ListItem anoLetivoSelecione = new ListItem();
                anoLetivoSelecione.Value = "0";
                anoLetivoSelecione.Text = "Selecione um Ano Letivo";

                lstAnoLetivo.Items.Add(anoLetivoSelecione);

                while (myReaderAnoLetivo.Read())
                {

                    ListItem anoLetivo = new ListItem();

                    anoLetivo.Value = myReaderAnoLetivo["codigoAnoLetivo"].ToString();
                    anoLetivo.Text = myReaderAnoLetivo["descricaoAnoLetivo"].ToString();

                    lstAnoLetivo.Items.Add(anoLetivo);

                }

                cmdAnoLetivo.Dispose();
                myReaderAnoLetivo.Close();

                //anos letivos carregados

                //Resgatar o nome do aluno
                string q = "select codigoAluno, nomeAluno from aluno where codigoAluno=" + Request.QueryString["codigoAluno"];
                SqlCommand cmd = new SqlCommand(q, sqlc);
                SqlDataReader myReader = cmd.ExecuteReader();

                while (myReader.Read())
                {
                    string nomeAluno = myReader["nomeAluno"].ToString();

                    lblNomeAluno.Text = nomeAluno;

                }

                cmd.Dispose();
                myReader.Close();
                sqlc.Close();


            }

        }

        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {

        }

        protected void lstAnoLetivo_SelectedIndexChanged(object sender, EventArgs e)
        {

            //carregar anos letivos

            SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlc.Open();

            SqlConnection sqld = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqld.Open();

            SqlConnection sqle = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqle.Open();

            //localizar a matricula deste ano letivo

            string locMatricula = "SELECT matricula.codigoMatricula as codigo, matricula.codigoSerie as codigoSerie, serie.descricaoSerie as descSerie, ";
            locMatricula = locMatricula + "matricula.codigoAnoLetivo, matricula.codigoAluno FROM matricula INNER JOIN ";
            locMatricula = locMatricula + "serie ON matricula.codigoSerie = serie.codigoSerie INNER JOIN ";
            locMatricula = locMatricula + "anoLetivo ON matricula.codigoAnoLetivo = anoLetivo.codigoAnoLetivo ";
            locMatricula = locMatricula + "WHERE (matricula.codigoAluno = " + Request["codigoAluno"].ToString() + ") AND (matricula.codigoAnoLetivo = " + lstAnoLetivo.SelectedValue + ")";


            SqlCommand cmdLocMat = new SqlCommand(locMatricula, sqlc);
            SqlDataReader myReaderLocMat = cmdLocMat.ExecuteReader();

            string codigoMatricula = "";
            string codigoSerie = "";

            while (myReaderLocMat.Read())
            {
                lblSerieAluno.Text = myReaderLocMat["descSerie"].ToString();

                codigoMatricula = myReaderLocMat["codigo"].ToString();

                codigoSerie = myReaderLocMat["codigoSerie"].ToString();

            }

            myReaderLocMat.Close();
            cmdLocMat.Dispose();

            //Listar todas as unidades existentes

            string sqlUnidades = "select * from unidade";

            SqlCommand cmdUnidades = new SqlCommand(sqlUnidades, sqld);
            SqlDataReader myReaderUnidades = cmdUnidades.ExecuteReader();

            string ComecoUnidades = "<table width=100% border=0>";
            panelUnidades.Controls.Add(new LiteralControl(ComecoUnidades));


            while (myReaderUnidades.Read())
            {
                string unidades = "<tr> <td colspan=2><span class=textoG>" + myReaderUnidades["descricaoUnidade"].ToString()+ "</span></td></tr><tr><td colspan=2>";
                unidades = unidades + "<img src=" + ConfigurationManager.AppSettings["url"] + "/images/linhaDivLogin.gif width=500 height=8 /></td></tr><tr> <td colspan=2><span class=texto></span></td></tr><tr><td colspan=2>";

                panelUnidades.Controls.Add(new LiteralControl(unidades));

                //carregar as disciplinas 

                string sqlDisciplinas = "SELECT anoLetivo.codigoAnoLetivo, serie.codigoSerie, disciplina.descricaoDisciplina as descricao, nota.codigoDisciplina, ";
                sqlDisciplinas = sqlDisciplinas + "nota.codigoAluno, nota.codigoUnidade, nota.notaNota as nota FROM nota INNER JOIN ";
                sqlDisciplinas = sqlDisciplinas + "disciplina ON nota.codigoDisciplina = disciplina.codigoDisciplina INNER JOIN anoLetivo INNER JOIN ";
                sqlDisciplinas = sqlDisciplinas + "serie ON anoLetivo.codigoAnoLetivo = serie.codigoAnoLetivo ON disciplina.codigoSerie = serie.codigoSerie ";
                sqlDisciplinas = sqlDisciplinas + "WHERE (anoLetivo.codigoAnoLetivo = " + lstAnoLetivo.SelectedValue + ")";
                sqlDisciplinas = sqlDisciplinas + "AND (serie.codigoSerie = " + codigoSerie + ") AND (nota.codigoAluno = "; 
                sqlDisciplinas = sqlDisciplinas + Request["codigoAluno"].ToString() + ") AND (nota.codigoUnidade = " + myReaderUnidades["codigoUnidade"].ToString() + ")";

                SqlCommand cmdDisciplinas = new SqlCommand(sqlDisciplinas, sqle);
                SqlDataReader myReaderDisciplinas = cmdDisciplinas.ExecuteReader();

                while (myReaderDisciplinas.Read())
                {

                    string unidades2 = "<tr><td width=10%><span class=texto>" + myReaderDisciplinas["descricao"].ToString() + "</span></td><td width=90%>";
                    unidades2 = unidades2 + "<span class=texto>" + myReaderDisciplinas["nota"].ToString() + "</span></td></tr>";
                    panelUnidades.Controls.Add(new LiteralControl(unidades2));

                }

                string espaco = "<tr><td width=10%><span class=texto>  </span></td><td width=90%>";
                espaco = espaco + "<span class=texto> </span></td></tr>";
                espaco = espaco + "<tr><td width=10%><span class=texto>  </span></td><td width=90%>";
                espaco = espaco + "<span class=texto> </span></td></tr>";
                espaco = espaco + "<tr><td width=10%><span class=texto>  </span></td><td width=90%>";
                espaco = espaco + "<span class=texto> </span></td></tr>";
                espaco = espaco + "<tr><td width=10%><span class=texto>  </span></td><td width=90%>";
                espaco = espaco + "<span class=texto> </span></td></tr>";
                panelUnidades.Controls.Add(new LiteralControl(espaco));

                cmdDisciplinas.Dispose();
                myReaderDisciplinas.Close();

            }

            cmdUnidades.Dispose();
            myReaderUnidades.Close();

            string fim = "<tr><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td></tr></table><br><br>";

            panelUnidades.Controls.Add(new LiteralControl(fim));

            sqlc.Close();
            sqld.Close();
            sqle.Close();

        }
    }
}
